TypeScript でバリデーションライブラリを使用するわけ
実行時には型情報が消えてしまう
入力内容の確認や、データなどの書式形式の検証
書いたコードは TypeScript の型によって担保されるが、実行時やとりわけ「外部から入ってくるデータ」についてが問題になる API からのレスポンス
ユーザーによるフォーム入力
URL のクエリパラメーター
など
開発者の想定とは異なるデータが入ってくることがある
バリデーションライブラリを使用することでこれらのチェックを行うことができる
1. バリデーションを担当
2. 型とバリデーションの二重管理を防ぐ(Type Inference)
code:ts
const UserSchema = z.object({ name: z.string().min(1), age: z.number() });
// バリデーション
UserSchema.parse(data);
// TypeScript の型
type User = z.infer<typeof UserSchema>;